package com.sky.mapper;

import com.sky.entity.Orders;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;

/**
 * @author 韩先楚
 */
@Mapper
public interface OrderMapper {

    /**
     * 增加订单
     */
    void insert(Orders orders);

    /**
     * 定时任务，每隔一分钟执行一次
     * 删除超时15分钟的订单
     */
    @Select("SELECT * FROM orders WHERE order_time < (NOW() - INTERVAL 15 MINUTE) and status = 1 ")
    List<Orders> selectTimeoutOrders();

    /**
     *修改超时时间订单状态
     */
    void updateOrdersOutTime(List<Orders> orderList);

    /**
     *  每天凌晨一点执行一次
     */
    @Select("select * from orders where order_time < #{time} and status = #{deliveryInProgress}")
    List<Orders> UpdateOrderStatusByDate(LocalDateTime time, Integer deliveryInProgress);

    /**
     *  每天凌晨一点执行一次
     *  修改订单数据
     */
    void updateOrdersData(List<Orders> orderList);

    Double sumByMap(HashMap map);

    /**
     * 订单报表数量统计
     */
    Integer countByMap(LocalDateTime start, LocalDateTime end, Integer status);
}
